package com.shrct.businessprocess.project;

import com.shrct.businessprocess.project.RCCostShareYearConfigItem;
import com.shrct.businessprocess.project.impl.RCCostShareYearConfigImpl;
import com.shrct.businessprocess.project.proxy.RCCostShareYearConfigProxy;
import edu.fudan.mylang.pf.EntityImplementation;
import edu.fudan.mylang.pf.IModelObject;
import java.util.Collection;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

@EntityImplementation(implementBy = RCCostShareYearConfigImpl.class)
public interface RCCostShareYearConfig extends IModelObject {
  public abstract Integer getYear();
  
  public abstract RCCostShareYearConfig setYear(final Integer year);
  
  public abstract Collection<RCCostShareYearConfigItem> getItems();
  
  public abstract RCCostShareYearConfigItem createAndAddtoItems();
  
  public abstract RCCostShareYearConfigItem createAndAddtoItems(final Procedure1<RCCostShareYearConfigItem> updater);
  
  public abstract RCCostShareYearConfig removeFromItems(final RCCostShareYearConfigItem rCCostShareYearConfigItem);
  
  public abstract RCCostShareYearConfig removeAllItems();
  
  public abstract Double getTotalSharedAmount();
  
  public abstract RCCostShareYearConfigItem createItem(final Procedure1<? super RCCostShareYearConfigItem> init);
  
  public abstract void deleteItem(final RCCostShareYearConfigItem item);
  
  public abstract void checkValid();
  
  public abstract RCCostShareYearConfigProxy toProxy();
}
